<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="author" content="Yb">
    <title>拖动图片上传</title>
    <script src="../js/jquery-3.1.1.js"></script>
    <style>
        div{
            font-family: 'Microsoft YaHei';
            width: 300px;
            height: 300px;
            border: 2px dotted #ccc;
            box-sizing: border-box;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        img{
            max-width: 100%;
            max-height: 100%;
            min-width: 100%;
            min-height: 100%;
        }
    </style>
</head>
<body>
    <div>
        <span>拖动文字上传</span>
    </div>
    <button type="submit">上传</button>
</body>
</html>

<script>

    // 在JQ中使用drag、drop相关事件，需要使用ev.originalEvent获取原始事件对象
    // 因为在JQ中，没有封装的事件中没有dataTransfer属性，也无法获取到files属性

    // 通过on()给DOM元素集合同时添加事件
    $('div').on({
        dragover:function(ev){
            // 阻止默认事件
            ev.preventDefault();
        },
        drop:function(ev){
            // 阻止默认事件
            ev.preventDefault();
            // var dt = ev.originalEvent.dataTransfer;
            // var files = dt.files;
            // var file = files[0];
            // if(file.type.startsWith('image')){
            //     // 加载图片
            //     $('img').attr('src',URL.createObjectURL(file));
            //     // 隐藏span标签
            //     $('span').hide();
            // }else{
            //     alert('请上传图片类型，只支持图片上传')
            // }



            // 下次拖拽的时候，把未上传的清空
            $('div').empty();
            // console.dir(ev.originalEvent.dataTransfer);
            // 获取拖拽的文件
            var file = ev.originalEvent.dataTransfer.files[0];
            console.dir(file);
            
            if(file.type.startsWith('image')){
                $('div').append('<img src=' + URL.createObjectURL(file) + '>');
            }
        }
    })

</script>